1 引子
svn 有一个引用外部版本库的方式,svn:external;把另外一个版本库作为当前版本库的资源(一部分)。默认开启自动检出外部引用,这个外部引用可以指向一个分支的某个版本,也可以一直指向最新版本。
git submodule跟这个类似,两个不同点:一个是默认不自动检出,另一个是只能指向某个特定的版本。
进入子模块目录,可以向主工程信息一样进行git操作。
2 操作方法
2.1 查看外部版本库信息
git submodule
类似于git branch
2.2 添加外部库
git submodule add REPOSITORY_URL PATH_TO_SUBMODULE
在当前目录中生成一个.gitmodules
的文件,里面记录了每个submodule额仓库和路径信息
2.3 查看外部库状态
git submodule status
2.4 初始化外部库
git submodule init
这个命令修改.git/config中的内容,对外部库(子模块)进行注册。
2.5 更新外部库信息
git submodule update
这个命令会按照主项目中包含的子模块的信息更新指定版本的子模块的内容,如果子模块目录中存在未提交的更改,内容可能会丢失。
2.6 删除外部库
git rm --cached PATH_TO_SUBMODULE
然后删除.gitmodules和.git/config中响应的module的内容。
或者
git submodule deinit PATH_TO_SUBMODULE
然后删除.gitmodules中对应的module内容
3 应用
3.1 检出一个带有外部版本库的项目
1 | git clone REPOSITORY_URL NAME |
3.2 修改外部版本库的引用版本
1 | cd PATH_TO_SUBMODULE |
4 参考资料
- Git Submodule使用完整教程
- Git Submodule管理项目子模块
- git submodule 管理子工程
- git submodule
- git 子模块
- How to Remove Git Submodules
- git 子树合并
最后更新: 2022年03月02日 03:32
原始链接: http://rawbin-.github.io/dev-tools/git/2016-02-14-using-gitsubmodule/